package tech.aistar.controller;

import org.springframework.web.bind.annotation.*;
import tech.aistar.mapper.UserMapper;
import tech.aistar.pojo.ResultReturn;
import tech.aistar.pojo.User;
import tech.aistar.service.UserService;
import tech.aistar.utils.JwtUtils;

import java.util.HashMap;
import java.util.Map;

@RestController
@RequestMapping("/user")
public class UserController {

    private final UserService userService;
    private UserMapper userMapper;


    public UserController(UserService userService) {
        this.userService = userService;
    }

    @GetMapping("{username}")
    public ResultReturn<String> getUser(@PathVariable String username) {
        // 从数据库查询用户
        User user = userService.findByUsername(username);

        // 如果用户不存在，返回错误
        if (user == null) {
            return ResultReturn.fail("用户不存在");
        }

        // 这里假设需要验证密码（根据实际业务，可能是验证其他信息）
        // 示例：假设前端传递的密码哈希在某个参数中，这里只是示例，需根据实际情况调整
        // 比如从请求参数中获取前端传递的密码哈希
        String pwdHashFromRequest = "xxx"; // 实际应从请求中获取，比如 @RequestParam String pwdHash
        if (!user.getPwdHash().equals(pwdHashFromRequest)) {
            return ResultReturn.fail("密码错误");
        }

        // 业务逻辑：发送密码哈希（示例，需根据实际需求调整）
        userService.sendPwdHash(user.getPwdHash());
        return ResultReturn.success("success");
    }

    // 登录接口（之前的代码）
    @PostMapping("/login/{username}/{pwd}")
    public ResultReturn login(
            @PathVariable("username") String username,
            @PathVariable("pwd") String pwd) {
        System.out.println("我不是人");
        if ("admin".equals(username) && "123456".equals(pwd)) {
            System.out.println("我是人");
//            return ResultReturn.success("登录成功");
            User user = new User();
            user.setUsername(username);
            user.setPwdHash(pwd);
            String token= JwtUtils.generateToken(user);
            Map<String, Object> map = new HashMap<>();
            map.put("token", token);
            map.put("username",username);
            return ResultReturn.success(map);
        }
        return ResultReturn.fail("用户名或密码错误");
    }
}